home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!zephyr.ens.tek.com!tekgen!tekred!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v08i019: NetHack3 - display oriented dungeons & dragons (Ver. 3.0), Patch3d
- Message-ID: <4538@tekred.CNA.TEK.COM>
- Date: 7 Sep 89 21:50:25 GMT
- Sender: nobody@tekred.CNA.TEK.COM
- Lines: 1288
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
- Posting-number: Volume 8, Issue 19
- Archive-name: NetHack3/Patch3d
- Patch-To: NetHack3: Volume 7, Issue 56-93
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 4 (of 6)."
- # Contents: patch03d
- # Wrapped by billr@saab on Thu Sep 7 14:39:04 1989
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'patch03d' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'patch03d'\"
- else
- echo shar: Extracting \"'patch03d'\" \(44912 characters\)
- sed "s/^X//" >'patch03d' <<'END_OF_FILE'
- X*** src/Old/mklev.c Wed Sep 6 16:33:09 1989
- X--- src/mklev.c Sat Aug 26 18:36:04 1989
- X***************
- X*** 790,796 ****
- X for (tryct = rn1(1,3); tryct; tryct--) {
- X x = somex(croom); y = somey(croom);
- X if (goodpos(x,y,(struct permonst *)0))
- X! (void) mk_tt_statue(x, y);
- X }
- X }
- X #endif
- X--- 790,796 ----
- X for (tryct = rn1(1,3); tryct; tryct--) {
- X x = somex(croom); y = somey(croom);
- X if (goodpos(x,y,(struct permonst *)0))
- X! (void) mk_tt_object(STATUE, x, y);
- X }
- X }
- X #endif
- X***************
- X*** 920,929 ****
- X #ifdef MEDUSA
- X if(!rn2(dlevel == medusa_level ? 1 : 20)) {
- X if (!rn2(dlevel == medusa_level ? 2 : 50))
- X! (void) mk_tt_statue(somex(croom), somey(croom));
- X else {
- X struct obj *otmp =
- X! mkstatue((struct permonst *)0,
- X somex(croom), somey(croom));
- X if (dlevel == medusa_level && otmp)
- X otmp->spe = 0;
- X--- 920,930 ----
- X #ifdef MEDUSA
- X if(!rn2(dlevel == medusa_level ? 1 : 20)) {
- X if (!rn2(dlevel == medusa_level ? 2 : 50))
- X! (void) mk_tt_object(STATUE,
- X! somex(croom), somey(croom));
- X else {
- X struct obj *otmp =
- X! mkcorpstat(STATUE, (struct permonst *)0,
- X somex(croom), somey(croom));
- X if (dlevel == medusa_level && otmp)
- X otmp->spe = 0;
- X***************
- X*** 932,938 ****
- X }
- X #else
- X if(!rn2(20))
- X! (void) mkstatue((struct permonst *)0,
- X somex(croom), somey(croom));
- X #endif
- X
- X--- 933,939 ----
- X }
- X #else
- X if(!rn2(20))
- X! (void) mkcorpstat(STATUE, (struct permonst *)0,
- X somex(croom), somey(croom));
- X #endif
- X
- X*** src/Old/mkobj.c Wed Sep 6 16:33:57 1989
- X--- src/mkobj.c Sat Sep 2 15:05:24 1989
- X***************
- X*** 81,91 ****
- X * Yes, this is a horrible kludge...
- X */
- X otmp = mkobj(let,TRUE);
- X- otmp->ox = x;
- X- otmp->oy = y;
- X otmp->nobj = fobj;
- X fobj = otmp;
- X! levl[x][y].omask = 1;
- X mksx = mksy = 0;
- X return(otmp);
- X }
- X--- 81,89 ----
- X * Yes, this is a horrible kludge...
- X */
- X otmp = mkobj(let,TRUE);
- X otmp->nobj = fobj;
- X fobj = otmp;
- X! place_object(otmp, x, y);
- X mksx = mksy = 0;
- X return(otmp);
- X }
- X***************
- X*** 98,107 ****
- X
- X mksx = x; mksy = y;
- X otmp = mksobj(otyp,TRUE);
- X- otmp->ox = x;
- X- otmp->oy = y;
- X otmp->nobj = fobj;
- X! levl[x][y].omask = 1;
- X mksx = mksy = 0;
- X return((fobj = otmp));
- X }
- X--- 96,103 ----
- X
- X mksx = x; mksy = y;
- X otmp = mksobj(otyp,TRUE);
- X otmp->nobj = fobj;
- X! place_object(otmp, x, y);
- X mksx = mksy = 0;
- X return((fobj = otmp));
- X }
- X***************
- X*** 244,250 ****
- X break;
- X case FOOD_SYM:
- X if(otmp->otyp == CORPSE) {
- X! /* overridden by mkcorpse_at() */
- X do otmp->corpsenm = rndmonnum();
- X while (mons[otmp->corpsenm].geno & G_NOCORPSE);
- X break;
- X--- 240,246 ----
- X break;
- X case FOOD_SYM:
- X if(otmp->otyp == CORPSE) {
- X! /* overridden by mkcorpstat() */
- X do otmp->corpsenm = rndmonnum();
- X while (mons[otmp->corpsenm].geno & G_NOCORPSE);
- X break;
- X***************
- X*** 306,314 ****
- X break;
- X case BAG_OF_TRICKS: otmp->spe = rnd(20);
- X break;
- X! case FIGURINE: otmp->corpsenm = rndmonnum();
- X blessorcurse(otmp, 4);
- X break;
- X #ifdef MUSIC
- X case MAGIC_FLUTE:
- X case MAGIC_HARP:
- X--- 302,315 ----
- X break;
- X case BAG_OF_TRICKS: otmp->spe = rnd(20);
- X break;
- X! case FIGURINE: { int tryct = 0;
- X! do
- X! otmp->corpsenm = rndmonnum();
- X! while(is_human(&mons[otmp->corpsenm])
- X! && tryct++ < 30);
- X blessorcurse(otmp, 4);
- X break;
- X+ }
- X #ifdef MUSIC
- X case MAGIC_FLUTE:
- X case MAGIC_HARP:
- X***************
- X*** 392,400 ****
- X case STATUE:
- X /* contains book? */
- X otmp->spe = (rn2(dlevel/2 + 10) > 10);
- X! /* overridden by mkstatue() */
- X otmp->corpsenm = rndmonnum();
- X- otmp->owt = mons[otmp->corpsenm].cwt;
- X }
- X break;
- X default:
- X--- 393,400 ----
- X case STATUE:
- X /* contains book? */
- X otmp->spe = (rn2(dlevel/2 + 10) > 10);
- X! /* overridden by mkcorpstat() */
- X otmp->corpsenm = rndmonnum();
- X }
- X break;
- X default:
- X***************
- X*** 498,546 ****
- X }
- X
- X struct obj *
- X! mkcorpse_at(ptr, x, y)
- X register struct permonst *ptr;
- X! int x, y;
- X {
- X register struct obj *otmp;
- X
- X! otmp = mksobj_at(CORPSE, x, y);
- X if(otmp) {
- X! otmp->corpsenm = monsndx(ptr);
- X! otmp->owt = ptr->cwt;
- X }
- X return(otmp);
- X }
- X
- X struct obj *
- X! mk_tt_corpse(x, y)
- X register int x, y;
- X {
- X register struct obj *otmp;
- X
- X! if((otmp = mksobj(CORPSE,FALSE))) {
- X! otmp->ox = x;
- X! otmp->oy = y;
- X! if(otmp = tt_oname(otmp)) {
- X! otmp->nobj = fobj;
- X! fobj = otmp;
- X! levl[x][y].omask = 1;
- X! }
- X! }
- X! return(otmp);
- X! }
- X!
- X! struct obj *
- X! mkstatue(ptr, x, y)
- X! register struct permonst *ptr;
- X! int x, y;
- X! {
- X! register struct obj *otmp;
- X!
- X! if((otmp = mksobj_at(STATUE, x, y))) {
- X!
- X! if(ptr) otmp->corpsenm = monsndx(ptr);
- X! else otmp->corpsenm = rndmonnum();
- X }
- X return(otmp);
- X }
- X--- 498,532 ----
- X }
- X
- X struct obj *
- X! mkcorpstat(objtype, ptr, x, y)
- X! int objtype; /* CORPSE or STATUE */
- X register struct permonst *ptr;
- X! int x, y;
- X {
- X register struct obj *otmp;
- X
- X! if(objtype != CORPSE && objtype != STATUE)
- X! impossible("making corpstate type %d", objtype);
- X! otmp = mksobj_at(objtype, x, y);
- X if(otmp) {
- X! if(ptr) otmp->corpsenm = monsndx(ptr);
- X! else otmp->corpsenm = rndmonnum();
- X! otmp->owt = weight(otmp);
- X }
- X return(otmp);
- X }
- X
- X struct obj *
- X! mk_tt_object(objtype, x, y)
- X! int objtype; /* CORPSE or STATUE */
- X register int x, y;
- X {
- X register struct obj *otmp;
- X
- X! if(otmp = mksobj_at(objtype,x,y)) {
- X! if((otmp = tt_oname(otmp)) && objtype == STATUE)
- X! /* player statues never contain books */
- X! otmp->spe = 0;
- X }
- X return(otmp);
- X }
- X***************
- X*** 554,609 ****
- X register int lth;
- X {
- X struct obj *otmp;
- X- register struct obj *obj2;
- X-
- X- if (lth == 0) {
- X- switch(objtype) {
- X- case STATUE: return (mkstatue(ptr, x, y));
- X- case CORPSE: return (mkcorpse_at(ptr, x, y));
- X- default: impossible("making named type %d", objtype);
- X- return mksobj_at(objtype, x, y);
- X- }
- X- }
- X-
- X- if((otmp = mksobj(objtype,FALSE))) {
- X- obj2 = newobj(lth);
- X- *obj2 = *otmp;
- X- obj2->corpsenm = monsndx(ptr);
- X- obj2->owt = ptr->cwt;
- X- obj2->onamelth = lth;
- X- Strcpy (ONAME(obj2), nm);
- X- free( (genericptr_t)otmp);
- X- obj2->ox = x;
- X- obj2->oy = y;
- X- obj2->nobj = fobj;
- X- fobj = obj2;
- X- levl[x][y].omask = 1;
- X- return(obj2);
- X- } else return((struct obj *)0);
- X- }
- X
- X! #ifdef MEDUSA
- X! struct obj *
- X! mk_tt_statue(x, y)
- X! register int x, y;
- X! {
- X! register struct obj *otmp;
- X!
- X! if((otmp = mksobj(STATUE,FALSE))) {
- X! otmp->ox = x;
- X! otmp->oy = y;
- X! if(otmp = tt_oname(otmp)) {
- X! otmp->nobj = fobj;
- X! fobj = otmp;
- X! levl[x][y].omask = 1;
- X! otmp->spe = 0;
- X! /* player statues never contain books */
- X! }
- X }
- X return(otmp);
- X }
- X- #endif
- X
- X boolean
- X is_flammable(otmp)
- X register struct obj *otmp;
- X--- 540,556 ----
- X register int lth;
- X {
- X struct obj *otmp;
- X
- X! otmp = mkcorpstat(objtype,ptr,x,y);
- X! if (lth > 0) {
- X! /* Note: oname() is safe since otmp is first in chain */
- X! otmp = oname(otmp, nm, FALSE);
- X! fobj = otmp;
- X }
- X return(otmp);
- X }
- X
- X+ #ifdef STUPID_CPP
- X boolean
- X is_flammable(otmp)
- X register struct obj *otmp;
- X***************
- X*** 620,629 ****
- X return(objects[otmp->otyp].oc_material == METAL);
- X }
- X
- X void
- X! set_omask(x, y)
- X! register xchar x, y;
- X {
- X! levl[x][y].gmask = (g_at(x, y) != (struct gold *)0);
- X! levl[x][y].omask = (o_at(x, y) != (struct obj *)0);
- X }
- X--- 567,626 ----
- X return(objects[otmp->otyp].oc_material == METAL);
- X }
- X
- X+ boolean
- X+ is_corrodeable(otmp)
- X+ register struct obj *otmp;
- X+ {
- X+ return(objects[otmp->otyp].oc_material == COPPER);
- X+ }
- X+ #endif
- X+
- X+ /*
- X+ * These functions encapsulate operations on the omask bit. Someday soon they
- X+ * will turn into list-manipulation functions.
- X+ */
- X+ boolean
- X+ OBJ_AT(x, y)
- X+ int x, y;
- X+ {
- X+ return levl[x][y].omask;
- X+ }
- X+
- X+ void
- X+ place_object(obj, x, y)
- X+ struct obj *obj;
- X+ register int x, y;
- X+ {
- X+ obj->ox = x;
- X+ obj->oy = y;
- X+ levl[x][y].omask = 1;
- X+ }
- X+
- X+ void
- X+ move_object(obj, x, y)
- X+ struct obj *obj;
- X+ register int x, y;
- X+ {
- X+ register int oldx = obj->ox, oldy = obj->oy;
- X+
- X+ obj->ox = x;
- X+ obj->oy = y;
- X+ levl[x][y].omask = 1;
- X+ levl[oldx][oldy].omask = (o_at(oldx, oldy) != (struct obj *)0);
- X+ }
- X+
- X void
- X! remove_object(obj)
- X! struct obj *obj;
- X {
- X! register int oldx = obj->ox, oldy = obj->oy;
- X!
- X! /*
- X! * This cannot be used since it screws up unpobj(). It's only necessary so
- X! * that o_at() doesn't mistakenly find the object, but this is called only
- X! * in situations with the object already removed from the chain anyway.
- X! obj->ox = 0;
- X! obj->oy = 0;
- X! */
- X! levl[oldx][oldy].omask = (o_at(oldx, oldy) != (struct obj *)0);
- X }
- X*** src/Old/objects.c Wed Sep 6 15:52:35 1989
- X--- src/objects.c Fri Sep 1 13:27:33 1989
- X***************
- X*** 19,25 ****
- X ILLOBJ_SYM, 0, 0, 0, 0, 0, 0, 0 },
- X /* amulets ... - THE Amulet comes last because it is special */
- X #define AMULET(name,desc,power,prob,weight) { name, desc, NULL,\
- X! 0,0,0,METAL, power, AMULET_SYM, prob, 0, weight, 100, 0, 0, 0 }
- X
- X AMULET("amulet of esp", "circular", TELEPAT, 190, 2),
- X AMULET("amulet of life saving", "spherical", LIFESAVED, 90, 2),
- X--- 19,25 ----
- X ILLOBJ_SYM, 0, 0, 0, 0, 0, 0, 0 },
- X /* amulets ... - THE Amulet comes last because it is special */
- X #define AMULET(name,desc,power,prob,weight) { name, desc, NULL,\
- X! 0,0,0,METAL, power, AMULET_SYM, prob, 0, weight, 150, 0, 0, 0 }
- X
- X AMULET("amulet of esp", "circular", TELEPAT, 190, 2),
- X AMULET("amulet of life saving", "spherical", LIFESAVED, 90, 2),
- X***************
- X*** 86,95 ****
- X FOOD("tin", 75, 0, 1, METAL, 0),
- X #undef FOOD
- X
- X- /* weapons ... - ROCK come several at a time */
- X- /* weapons ... - (DART-1) are shot using idem+(BOW-ARROW) */
- X- /* weapons AXE, SWORD, KATANA, THSWORD are good for worm-cutting */
- X- /* weapons (PICK-)AXE, DAGGER, CRYSKNIFE are good for tin-opening */
- X #define WEAPON(name,app,kn,mg,bi,prob,wt,cost,sdam,ldam,metal) { name, app, \
- X NULL, kn,mg,bi,metal, 0, WEAPON_SYM, prob, 0, wt, cost, sdam, ldam, 0 }
- X #define PROJECTILE(name,app,kn,bi,prob,wt,cost,sdam,ldam,metal,prop) { name, \
- X--- 86,91 ----
- X***************
- X*** 118,151 ****
- X METAL, WP_CROSSBOW),
- X
- X WEAPON("dart", NULL, 1, 1, 0, 60, 0, 2, 3, 2, METAL),
- X! WEAPON("shuriken", "throwing star",0, 1, 0, 30, 0, 2, 8, 6, METAL),
- X! WEAPON("boomerang", NULL, 1, 1, 0, 15, 3, 50, 9, 9, WOOD),
- X
- X /* spears */
- X #ifdef TOLKIEN
- X! WEAPON("spear", NULL, 1, 1, 0, 55, 3, 8, 6, 8, METAL),
- X! WEAPON("elven spear", "runed spear", 0, 1, 0, 10, 3, 8, 7, 8, METAL),
- X! WEAPON("orcish spear", "black spear", 0, 1, 0, 13, 3, 8, 5, 8, METAL),
- X! WEAPON("dwarvish spear","shiny spear", 0, 1, 0, 12, 3, 8, 8, 8, METAL),
- X #else
- X! WEAPON("spear", NULL, 1, 1, 0, 90, 3, 8, 6, 8, METAL),
- X #endif
- X! WEAPON("javelin", "throwing spear",0,1, 0, 10, 3, 8, 6, 6, METAL),
- X! WEAPON("trident", NULL, 1, 0, 0, 8, 4, 6, 6, 4, METAL),
- X /* +1 small, +2d4 large */
- X! WEAPON("lance", NULL, 1, 0, 0, 8, 4, 20, 6, 8, METAL),
- X
- X /* blades */
- X #ifdef TOLKIEN
- X! WEAPON("dagger", NULL, 1, 1, 0, 25, 2, 20, 4, 3, METAL),
- X! WEAPON("elven dagger", "large runed knife", 0, 1, 0, 8, 2, 20, 5, 3, METAL),
- X! WEAPON("orcish dagger", "large black knife", 0, 1, 0, 10, 2, 20, 3, 3, METAL),
- X #else
- X! WEAPON("dagger", NULL, 1, 1, 0, 43, 2, 20, 4, 3, METAL),
- X #endif
- X! WEAPON("scalpel", NULL, 1, 1, 0, 0, 1, 20, 4, 3, METAL),
- X! WEAPON("knife", NULL, 1, 1, 0, 25, 2, 15, 3, 3, METAL),
- X! WEAPON("axe", NULL, 1, 0, 0, 50, 3, 50, 6, 4, METAL),
- X #ifdef WORM
- X WEAPON("worm tooth", NULL, 1, 0, 0, 0, 3, 2, 2, 2, METAL),
- X WEAPON("crysknife", NULL, 1, 0, 0, 0, 3,100,10,10, METAL),
- X--- 114,148 ----
- X METAL, WP_CROSSBOW),
- X
- X WEAPON("dart", NULL, 1, 1, 0, 60, 0, 2, 3, 2, METAL),
- X! WEAPON("shuriken", "throwing star",0, 1, 0, 30, 0, 5, 8, 6, METAL),
- X! WEAPON("boomerang", NULL, 1, 1, 0, 15, 3, 20, 9, 9, WOOD),
- X
- X /* spears */
- X #ifdef TOLKIEN
- X! WEAPON("spear", NULL, 1, 1, 0, 55, 3, 5, 6, 8, METAL),
- X! WEAPON("elven spear", "runed spear", 0, 1, 0, 10, 3, 5, 7, 8, METAL),
- X! WEAPON("orcish spear", "black spear", 0, 1, 0, 13, 3, 5, 5, 8, METAL),
- X! WEAPON("dwarvish spear","shiny spear", 0, 1, 0, 12, 3, 5, 8, 8, METAL),
- X #else
- X! WEAPON("spear", NULL, 1, 1, 0, 90, 3, 5, 6, 8, METAL),
- X #endif
- X! WEAPON("javelin", "throwing spear",0,1, 0, 10, 3, 5, 6, 6, METAL),
- X! WEAPON("trident", NULL, 1, 0, 0, 8, 4, 15, 6, 4, METAL),
- X /* +1 small, +2d4 large */
- X! WEAPON("lance", NULL, 1, 0, 0, 8, 4, 10, 6, 8, METAL),
- X
- X /* blades */
- X #ifdef TOLKIEN
- X! WEAPON("dagger", NULL, 1, 1, 0, 25, 2, 4, 4, 3, METAL),
- X! WEAPON("elven dagger", "large runed knife", 0, 1, 0, 8, 2, 4, 5, 3, METAL),
- X! WEAPON("orcish dagger", "large black knife", 0, 1, 0, 10, 2, 4, 3, 3, METAL),
- X #else
- X! WEAPON("dagger", NULL, 1, 1, 0, 43, 2, 4, 4, 3, METAL),
- X #endif
- X! WEAPON("athame", NULL, 1, 1, 0, 0, 2, 4, 4, 3, METAL),
- X! WEAPON("scalpel", NULL, 1, 1, 0, 0, 1, 4, 4, 3, METAL),
- X! WEAPON("knife", NULL, 1, 1, 0, 25, 2, 4, 3, 3, METAL),
- X! WEAPON("axe", NULL, 1, 0, 0, 50, 3, 8, 6, 4, METAL),
- X #ifdef WORM
- X WEAPON("worm tooth", NULL, 1, 0, 0, 0, 3, 2, 2, 2, METAL),
- X WEAPON("crysknife", NULL, 1, 0, 0, 0, 3,100,10,10, METAL),
- X***************
- X*** 153,242 ****
- X
- X /* swords */
- X #ifdef TOLKIEN
- X! WEAPON("short sword", NULL, 1, 0, 0, 6, 3, 80, 6, 8, METAL),
- X WEAPON("elven short sword", "short runed sword",
- X! 0, 0, 0, 2, 3, 80, 8, 8, METAL),
- X WEAPON("orcish short sword", "short black sword",
- X! 0, 0, 0, 3, 3, 80, 5, 8, METAL),
- X WEAPON("dwarvish short sword", "short shiny sword",
- X! 0, 0, 0, 2, 3, 80, 7, 8, METAL),
- X #else
- X! WEAPON("short sword", NULL, 1, 0, 0, 13, 3, 80, 6, 8, METAL),
- X #endif
- X! WEAPON("scimitar", "curved sword", 0, 0, 0, 6, 4, 80, 8, 8, METAL),
- X #ifdef TOLKIEN
- X! WEAPON("broadsword", "wide sword", 0, 0, 0, 8, 4, 80, 4, 6, METAL),
- X /* +d4 small, +1 large */
- X WEAPON("elven broadsword", "wide runed sword",
- X! 0, 0, 0, 4, 4, 80, 6, 6, METAL),
- X /* +d4 small, +1 large */
- X #else
- X! WEAPON("broadsword", "wide sword", 0, 0, 0, 12, 4, 80, 4, 6, METAL),
- X /* +d4 small, +1 large */
- X #endif
- X! WEAPON("long sword", NULL, 1, 0, 0, 60, 4, 80, 8, 12, METAL),
- X #ifdef TOLKIEN
- X! WEAPON("two-handed sword", NULL, 1, 0, 1, 25, 5, 80,12, 6, METAL),
- X /* +2d6 large */
- X WEAPON("dwarvish mattock", "huge shiny sword",
- X! 0, 0, 1, 15, 6, 80,12, 8, METAL),
- X /* +2d6 large */
- X #else
- X! WEAPON("two-handed sword", NULL, 1, 0, 1, 40, 5, 80,12, 6, METAL),
- X /* +2d6 large */
- X #endif
- X WEAPON("katana", "samurai sword", 0, 0, 0, 6, 4,100,10, 12, METAL),
- X
- X /* blunt */
- X! WEAPON("mace", NULL, 1, 0, 0, 55, 4, 150, 6, 6, METAL),
- X /* +1 small */
- X! WEAPON("morning star", NULL, 1, 0, 0, 12, 4, 120, 4, 6, METAL),
- X /* +d4 small, +1 large */
- X! WEAPON("club", NULL, 1, 0, 0, 10, 3, 100, 6, 3, WOOD),
- X #ifdef KOPS
- X! WEAPON("rubber hose", NULL, 1, 0, 0, 0, 2, 100, 6, 3, 0),
- X #endif
- X! WEAPON("quarterstaff", "staff", 0, 0, 1, 10, 3, 150, 6, 6, WOOD),
- X!
- X /* two-piece */
- X! WEAPON("aklys", "thonged club", 0, 0, 0, 8, 3, 30, 6, 3, METAL),
- X! WEAPON("flail", NULL, 1, 0, 0, 40, 3, 30, 6, 4, METAL),
- X /* +1 small, +1d4 large */
- X /* whip */
- X! WEAPON("bullwhip", NULL, 1, 0, 0, 5, 2, 20, 2, 1, 0),
- X
- X /* polearms */
- X! WEAPON("bardiche", "large poleaxe", 0, 0, 1, 8, 3, 70, 4, 4, METAL),
- X! /* +1d4 small, +2d4 large */
- X! WEAPON("bec de corbin","beaked poleaxe",0, 0, 1, 8, 3, 16, 8, 6, METAL),
- X! WEAPON("bill-guisarme","hooked polearm",0, 0, 1, 8, 3, 60, 4,10, METAL),
- X! /* +1d4 small */
- X! WEAPON("fauchard", "sickle", 0, 0, 1, 11, 3, 30, 6, 8, METAL),
- X! WEAPON("glaive", "pike", 0, 0, 1, 15, 3, 60, 6,10, METAL),
- X! WEAPON("guisarme", "pruning hook", 0, 0, 1, 11, 3, 50, 4, 8, METAL),
- X! /* +1d4 small */
- X! WEAPON("halberd", "long poleaxe", 0, 0, 1, 16, 3, 90,10, 6, METAL),
- X! /* +1d6 large */
- X! WEAPON("lucern hammer", "hammerhead polearm", 0, 0, 1, 10, 3, 70, 4, 6, METAL),
- X! /* +1d4 small */
- X! WEAPON("partisan", "vulgar polearm", 0, 0, 1, 10, 3,100, 6, 6, METAL),
- X /* +1 large */
- X! WEAPON("ranseur", "hilted polearm", 0, 0, 1, 10, 3, 40, 4, 4, METAL),
- X /* +d4 both */
- X! WEAPON("spetum", "forked polearm", 0, 0, 1, 10, 3, 30, 6, 6, METAL),
- X /* +1 small, +d6 large */
- X! WEAPON("voulge", "poleaxe", 0, 0, 1, 8, 3, 20, 4, 4, METAL),
- X /* +d4 both */
- X /* bows */
- X #ifdef TOLKIEN
- X! BOW("bow", NULL, 1, 0, 24, 3, 120, 4, 6, 0, WP_BOW),
- X! BOW("elven bow", "runed bow", 0, 0, 12, 3, 120, 5, 6, 0, WP_BOW),
- X! BOW("orcish bow", "black bow", 0, 0, 12, 3, 120, 3, 6, 0, WP_BOW),
- X #else
- X! BOW("bow", NULL, 1, 0, 48, 3, 120, 4, 6, 0, WP_BOW),
- X #endif
- X! BOW("sling", NULL, 1, 0, 40, 2, 20, 6, 6, 0, WP_SLING),
- X! BOW("crossbow", NULL, 1, 0, 45, 3, 40, 4, 6, 0, WP_CROSSBOW),
- X #undef WEAPON
- X #undef PROJECTILE
- X #undef BOW
- X--- 150,245 ----
- X
- X /* swords */
- X #ifdef TOLKIEN
- X! WEAPON("short sword", NULL, 1, 0, 0, 6, 3, 10, 6, 8, METAL),
- X WEAPON("elven short sword", "short runed sword",
- X! 0, 0, 0, 2, 3, 10, 8, 8, METAL),
- X WEAPON("orcish short sword", "short black sword",
- X! 0, 0, 0, 3, 3, 10, 5, 8, METAL),
- X WEAPON("dwarvish short sword", "short shiny sword",
- X! 0, 0, 0, 2, 3, 10, 7, 8, METAL),
- X #else
- X! WEAPON("short sword", NULL, 1, 0, 0, 13, 3, 10, 6, 8, METAL),
- X #endif
- X! WEAPON("scimitar", "curved sword", 0, 0, 0, 6, 4, 15, 8, 8, METAL),
- X #ifdef TOLKIEN
- X! WEAPON("broadsword", "wide sword", 0, 0, 0, 8, 4, 10, 4, 6, METAL),
- X /* +d4 small, +1 large */
- X WEAPON("elven broadsword", "wide runed sword",
- X! 0, 0, 0, 4, 4, 10, 6, 6, METAL),
- X /* +d4 small, +1 large */
- X #else
- X! WEAPON("broadsword", "wide sword", 0, 0, 0, 12, 4, 10, 4, 6, METAL),
- X /* +d4 small, +1 large */
- X #endif
- X! WEAPON("long sword", NULL, 1, 0, 0, 60, 4, 15, 8, 12, METAL),
- X #ifdef TOLKIEN
- X! WEAPON("two-handed sword", NULL, 1, 0, 1, 25, 5, 50,12, 6, METAL),
- X /* +2d6 large */
- X WEAPON("dwarvish mattock", "huge shiny sword",
- X! 0, 0, 1, 15, 6, 50,12, 8, METAL),
- X /* +2d6 large */
- X #else
- X! WEAPON("two-handed sword", NULL, 1, 0, 1, 40, 5, 50,12, 6, METAL),
- X /* +2d6 large */
- X #endif
- X WEAPON("katana", "samurai sword", 0, 0, 0, 6, 4,100,10, 12, METAL),
- X
- X /* blunt */
- X! WEAPON("mace", NULL, 1, 0, 0, 40, 4, 8, 6, 6, METAL),
- X /* +1 small */
- X! WEAPON("morning star", NULL, 1, 0, 0, 12, 4, 10, 4, 6, METAL),
- X /* +d4 small, +1 large */
- X! WEAPON("war hammer", NULL, 1, 0, 0, 15, 3, 5, 4, 4, METAL),
- X! /* +1 small */
- X! WEAPON("club", NULL, 1, 0, 0, 10, 3, 4, 6, 3, WOOD),
- X #ifdef KOPS
- X! WEAPON("rubber hose", NULL, 1, 0, 0, 0, 2, 4, 6, 3, 0),
- X #endif
- X! WEAPON("quarterstaff", "staff", 0, 0, 1, 10, 3, 8, 6, 6, WOOD),
- X /* two-piece */
- X! WEAPON("aklys", "thonged club", 0, 0, 0, 8, 3, 4, 6, 3, METAL),
- X! WEAPON("flail", NULL, 1, 0, 0, 40, 3, 4, 6, 4, METAL),
- X /* +1 small, +1d4 large */
- X /* whip */
- X! WEAPON("bullwhip", NULL, 1, 0, 0, 5, 2, 4, 2, 1, 0),
- X
- X /* polearms */
- X! /* spear-type */
- X! WEAPON("partisan", "vulgar polearm", 0, 0, 1, 10, 3, 10, 6, 6, METAL),
- X /* +1 large */
- X! WEAPON("ranseur", "hilted polearm", 0, 0, 1, 10, 3, 6, 4, 4, METAL),
- X /* +d4 both */
- X! WEAPON("spetum", "forked polearm", 0, 0, 1, 10, 3, 5, 6, 6, METAL),
- X /* +1 small, +d6 large */
- X! WEAPON("glaive", "single-edged polearm", 0, 0, 1, 15, 3, 6, 6,10, METAL),
- X! /* axe-type */
- X! WEAPON("halberd", "angled poleaxe", 0, 0, 1, 16, 3, 10,10, 6, METAL),
- X! /* +1d6 large */
- X! WEAPON("bardiche", "long poleaxe", 0, 0, 1, 8, 3, 7, 4, 4, METAL),
- X! /* +1d4 small, +2d4 large */
- X! WEAPON("voulge", "pole cleaver", 0, 0, 1, 8, 3, 5, 4, 4, METAL),
- X /* +d4 both */
- X+ /* curved/hooked */
- X+ WEAPON("fauchard", "pole sickle", 0, 0, 1, 11, 3, 5, 6, 8, METAL),
- X+ WEAPON("guisarme", "pruning hook", 0, 0, 1, 11, 3, 5, 4, 8, METAL),
- X+ /* +1d4 small */
- X+ WEAPON("bill-guisarme","hooked polearm",0, 0, 1, 8, 3, 7, 4,10, METAL),
- X+ /* +1d4 small */
- X+ /* other */
- X+ WEAPON("lucern hammer", "pronged polearm", 0, 0, 1, 10, 3, 7, 4, 6, METAL),
- X+ /* +1d4 small */
- X+ WEAPON("bec de corbin","beaked polearm",0, 0, 1, 8, 3, 8, 8, 6, METAL),
- X+
- X /* bows */
- X #ifdef TOLKIEN
- X! BOW("bow", NULL, 1, 0, 24, 3, 120, 30, 6, 0, WP_BOW),
- X! BOW("elven bow", "runed bow", 0, 0, 12, 3, 120, 35, 6, 0, WP_BOW),
- X! BOW("orcish bow", "black bow", 0, 0, 12, 3, 120, 25, 6, 0, WP_BOW),
- X #else
- X! BOW("bow", NULL, 1, 0, 48, 3, 120, 30, 6, 0, WP_BOW),
- X #endif
- X! BOW("sling", NULL, 1, 0, 40, 2, 20, 4, 6, 0, WP_SLING),
- X! BOW("crossbow", NULL, 1, 0, 45, 3, 40, 35, 6, 0, WP_CROSSBOW),
- X #undef WEAPON
- X #undef PROJECTILE
- X #undef BOW
- X***************
- X*** 255,261 ****
- X TOOL("blindfold", NULL, 1, 0, 105, 2, 20, 0),
- X #endif
- X TOOL("tinning kit", NULL, 1, 0, 15, 10, 30, METAL),
- X! TOOL("lock pick", NULL, 1, 0, 55, 2, 20, METAL),
- X TOOL("credit card", NULL, 1, 0, 5, 1, 10, 0),
- X #ifdef WALKIES
- X TOOL("key", NULL, 1, 0, 100, 1, 10, METAL),
- X--- 258,264 ----
- X TOOL("blindfold", NULL, 1, 0, 105, 2, 20, 0),
- X #endif
- X TOOL("tinning kit", NULL, 1, 0, 15, 10, 30, METAL),
- X! TOOL("lock pick", NULL, 1, 0, 55, 2, 10, METAL),
- X TOOL("credit card", NULL, 1, 0, 5, 1, 10, 0),
- X #ifdef WALKIES
- X TOOL("key", NULL, 1, 0, 100, 1, 10, METAL),
- X***************
- X*** 265,271 ****
- X TOOL("skeleton key", "key", 0, 0, 60, 1, 10, METAL),
- X TOOL("expensive camera", NULL, 1, 0, 5, 3, 200, 0),
- X TOOL("magic marker", NULL, 1, 1, 15, 1, 50, 0),
- X! TOOL("stethoscope", NULL, 1, 0, 15, 2, 80, 0),
- X TOOL("tin opener", NULL, 1, 0, 25, 1, 30, METAL),
- X #ifdef WALKIES
- X TOOL("lamp", NULL, 1, 1, 90, 10, 50, 0),
- X--- 268,274 ----
- X TOOL("skeleton key", "key", 0, 0, 60, 1, 10, METAL),
- X TOOL("expensive camera", NULL, 1, 0, 5, 3, 200, 0),
- X TOOL("magic marker", NULL, 1, 1, 15, 1, 50, 0),
- X! TOOL("stethoscope", NULL, 1, 0, 15, 2, 75, 0),
- X TOOL("tin opener", NULL, 1, 0, 25, 1, 30, METAL),
- X #ifdef WALKIES
- X TOOL("lamp", NULL, 1, 1, 90, 10, 50, 0),
- X***************
- X*** 274,286 ****
- X #endif
- X TOOL("magic lamp", "lamp", 0, 1, 20, 10, 50, 0),
- X TOOL("crystal ball", NULL, 1, 1, 35, 15, 60, GLASS),
- X! TOOL("figurine", NULL, 1, 0, 35, 5, 80, MINERAL),
- X! TOOL("ice box", NULL, 1, 0, 5, 40, 400, 0),
- X! TOOL("large box", NULL, 1, 0, 40, 40, 400, WOOD),
- X! TOOL("chest", NULL, 1, 0, 35, 40, 500, WOOD),
- X! TOOL("sack", "bag", 0, 0, 40, 3, 200, 0),
- X! TOOL("bag of holding", "bag", 0, 0, 20, 3, 250, 0),
- X! TOOL("bag of tricks", "bag", 0, 1, 20, 3, 250, 0),
- X #ifndef MUSIC
- X TOOL("whistle", NULL, 1, 0, 120, 2, 10, METAL),
- X TOOL("magic whistle", "whistle", 0, 0, 50, 2, 10, METAL),
- X--- 277,289 ----
- X #endif
- X TOOL("magic lamp", "lamp", 0, 1, 20, 10, 50, 0),
- X TOOL("crystal ball", NULL, 1, 1, 35, 15, 60, GLASS),
- X! TOOL("figurine", NULL, 1, 0, 35, 5, 80, MINERAL),
- X! TOOL("ice box", NULL, 1, 0, 5, 40, 30, 0),
- X! TOOL("large box", NULL, 1, 0, 40, 40, 20, WOOD),
- X! TOOL("chest", NULL, 1, 0, 35, 40, 20, WOOD),
- X! TOOL("sack", "bag", 0, 0, 40, 3, 20, 0),
- X! TOOL("bag of holding", "bag", 0, 0, 20, 3, 100, 0),
- X! TOOL("bag of tricks", "bag", 0, 1, 20, 3, 100, 0),
- X #ifndef MUSIC
- X TOOL("whistle", NULL, 1, 0, 120, 2, 10, METAL),
- X TOOL("magic whistle", "whistle", 0, 0, 50, 2, 10, METAL),
- X***************
- X*** 323,419 ****
- X name, desc, NULL, kn,0,blk,metal, power, ARMOR_SYM, prob,\
- X delay, weight, cost, ac, can, 0 }
- X #ifdef TOLKIEN
- X! ARMOR("elven leather helm", "leather hat", 0, 0, 0, 6, 1, 2, 10, 9, 0, 0),
- X ARMOR("orcish helm", "black cap", 0, 0, 0, 6, 1, 3, 10, 9, 0, METAL),
- X! ARMOR("dwarvish iron helm", "hard hat", 0, 0, 0, 6, 1, 3, 10, 8, 0, METAL),
- X #else
- X ARMOR("orcish helm", "black cap", 0, 0, 0, 18, 1, 3, 10, 9, 0, METAL),
- X #endif
- X! ARMOR("fedora", NULL, 1, 0, 0, 0, 1, 1, 10, 9, 0, 0),
- X ARMOR("helmet", "rusty pot", 0, 0, 0, 12, 1, 2, 10, 9, 0, METAL),
- X! ARMOR("helm of brilliance", "plumed hat", 0, 0, 0, 6, 1, 2, 15, 9, 0, METAL),
- X ARMOR("helm of opposite alignment", "crested helmet",
- X! 0, 0, 0, 6, 1, 2, 15, 9, 0, METAL),
- X ARMOR("helm of telepathy", "visored helmet",
- X! 0, 0, TELEPAT, 2, 1, 2, 15, 9, 0, METAL),
- X
- X! /* non-metal and (METAL | 1) armors do not rust */
- X ARMOR("dragon scale mail", NULL, 1, 1, 0, 0, 5, 5,1000, 1, 0, 0),
- X! ARMOR("plate mail", NULL, 1, 1, 0, 44, 5, 9, 400, 3, 2, METAL),
- X! ARMOR("crystal plate mail", NULL, 1, 1, 0, 10, 5, 9, 820, 3, 2, 0),
- X #ifdef SHIRT
- X! ARMOR("bronze plate mail", NULL, 1, 1, 0, 25, 5, 9, 600, 4, 0, (METAL | 1)),
- X #else
- X! ARMOR("bronze plate mail", NULL, 1, 1, 0, 35, 5, 9, 600, 4, 0, (METAL | 1)),
- X #endif
- X ARMOR("splint mail", NULL, 1, 1, 0, 66, 5, 8, 80, 4, 1, METAL),
- X ARMOR("banded mail", NULL, 1, 1, 0, 76, 5, 8, 90, 4, 0, METAL),
- X #ifdef TOLKIEN
- X! ARMOR("dwarvish mithril-coat", NULL, 1, 0, 0, 10, 1, 2, 160, 4, 3, (METAL | 1)),
- X! ARMOR("elven mithril-coat", NULL, 1, 0, 0, 15, 1, 2, 160, 5, 3, (METAL | 1)),
- X ARMOR("chain mail", NULL, 1, 0, 0, 76, 5, 6, 75, 5, 1, METAL),
- X ARMOR("orcish chain mail", "black chain mail",
- X 0, 0, 0, 20, 5, 6, 75, 5, 1, METAL),
- X #else
- X! ARMOR("dwarvish mithril-coat", NULL, 1, 0, 0, 25, 1, 2, 160, 4, 3, (METAL | 1)),
- X ARMOR("chain mail", NULL, 1, 0, 0, 96, 5, 6, 75, 5, 1, METAL),
- X #endif
- X! ARMOR("scale mail", NULL, 1, 0, 0, 76, 5, 5, 45, 6, 0, METAL),
- X ARMOR("studded leather armor", NULL,
- X! 1, 0, 0, 76, 3, 3, 15, 7, 1, 0),
- X #ifdef TOLKIEN
- X! ARMOR("ring mail", NULL, 1, 0, 0, 76, 5, 4, 30, 7, 0, METAL),
- X ARMOR("orcish ring mail", "black ring mail",
- X! 0, 0, 0, 20, 5, 5, 75, 8, 1, METAL),
- X #else
- X! ARMOR("ring mail", NULL, 1, 0, 0, 96, 5, 4, 30, 7, 0, METAL),
- X #endif
- X ARMOR("leather armor", NULL, 1, 0, 0, 97, 3, 2, 5, 8, 0, 0),
- X
- X /* 'cope' is not a spelling mistake... leave it be */
- X ARMOR("mummy wrapping", NULL,
- X! 1, 0, 0, 0, 0, 2, 5, 10, 2, 0),
- X #ifdef TOLKIEN
- X ARMOR("elven cloak", "ornamental cope",
- X! 0, 0, STEALTH, 12, 0, 2, 35, 9, 3, 0),
- X ARMOR("orcish cloak", "black mantelet",
- X! 0, 0, 0, 12, 0, 2, 35, 10, 3, 0),
- X ARMOR("dwarvish cloak", "colorful hooded cloak",
- X! 0, 0, 0, 12, 0, 2, 35, 10, 3, 0),
- X #else
- X ARMOR("elven cloak", "ornamental cope",
- X! 0, 0, STEALTH, 36, 0, 2, 35, 9, 3, 0),
- X #endif
- X ARMOR("cloak of protection", "tattered cape",
- X! 0, 0, PROTECTION, 12, 0, 2, 15, 7, 3, 0),
- X ARMOR("cloak of invisibility", "opera hood",
- X! 0, 0, INVIS, 12, 0, 2, 35, 9, 3, 0),
- X ARMOR("cloak of magic resistance", "faded pall",
- X! 0, 0, ANTIMAGIC, 2, 0, 2, 25, 9, 3, 0),
- X ARMOR("cloak of displacement", "piece of cloth",
- X! 0, 0, DISPLACED, 12, 0, 2, 15, 9, 3, 0),
- X
- X #ifdef TOLKIEN
- X ARMOR("small shield", NULL,
- X! 1, 0, 0, 6, 0, 2, 10, 9, 0, METAL),
- X ARMOR("elven shield", "blue and green shield",
- X! 0, 0, 0, 2, 0, 2, 15, 8, 0, METAL),
- X ARMOR("Uruk-hai shield", "white-handed shield",
- X! 0, 0, 0, 2, 0, 4, 10, 9, 0, METAL),
- X ARMOR("orcish shield", "red-eyed shield",
- X! 0, 0, 0, 2, 0, 3, 10, 9, 0, METAL),
- X ARMOR("large shield", NULL,
- X! 1, 1, 0, 7, 0, 4, 15, 8, 0, METAL),
- X ARMOR("dwarvish roundshield", "large round shield",
- X! 0, 0, 0, 4, 0, 4, 15, 8, 0, METAL),
- X #else
- X ARMOR("small shield", NULL,
- X! 1, 0, 0, 12, 0, 2, 10, 9, 0, METAL),
- X ARMOR("large shield", NULL,
- X! 1, 1, 0, 11, 0, 4, 15, 8, 0, METAL),
- X #endif
- X ARMOR("shield of reflection", "polished silver shield",
- X! 0, 0, REFLECTING, 3, 0, 3, 50, 8, 0, (METAL | 1)),
- X
- X #ifdef SHIRT
- X ARMOR("Hawaiian shirt", NULL, 1, 0, 0, 10, 0, 2, 5, 10, 0, 0),
- X--- 326,423 ----
- X name, desc, NULL, kn,0,blk,metal, power, ARMOR_SYM, prob,\
- X delay, weight, cost, ac, can, 0 }
- X #ifdef TOLKIEN
- X! ARMOR("elven leather helm", "leather hat", 0, 0, 0, 6, 1, 2, 8, 9, 0, 0),
- X ARMOR("orcish helm", "black cap", 0, 0, 0, 6, 1, 3, 10, 9, 0, METAL),
- X! ARMOR("dwarvish iron helm", "hard hat", 0, 0, 0, 6, 1, 3, 20, 8, 0, METAL),
- X #else
- X ARMOR("orcish helm", "black cap", 0, 0, 0, 18, 1, 3, 10, 9, 0, METAL),
- X #endif
- X! ARMOR("fedora", NULL, 1, 0, 0, 0, 1, 1, 8, 9, 0, 0),
- X ARMOR("helmet", "rusty pot", 0, 0, 0, 12, 1, 2, 10, 9, 0, METAL),
- X! ARMOR("helm of brilliance", "plumed hat",
- X! 0, 0, 0, 6, 1, 2, 50, 9, 0, METAL),
- X ARMOR("helm of opposite alignment", "crested helmet",
- X! 0, 0, 0, 6, 1, 2, 50, 9, 0, METAL),
- X ARMOR("helm of telepathy", "visored helmet",
- X! 0, 0, TELEPAT, 2, 1, 2, 50, 9, 0, METAL),
- X
- X! /* non-METAL armors do not rust */
- X ARMOR("dragon scale mail", NULL, 1, 1, 0, 0, 5, 5,1000, 1, 0, 0),
- X! ARMOR("plate mail", NULL, 1, 1, 0, 44, 5, 9, 600, 3, 2, METAL),
- X! ARMOR("crystal plate mail", NULL, 1, 1, 0, 10, 5, 9, 820, 3, 2, GLASS),
- X #ifdef SHIRT
- X! ARMOR("bronze plate mail", NULL, 1, 1, 0, 25, 5, 9, 400, 4, 0, COPPER),
- X #else
- X! ARMOR("bronze plate mail", NULL, 1, 1, 0, 35, 5, 9, 400, 4, 0, COPPER),
- X #endif
- X ARMOR("splint mail", NULL, 1, 1, 0, 66, 5, 8, 80, 4, 1, METAL),
- X ARMOR("banded mail", NULL, 1, 1, 0, 76, 5, 8, 90, 4, 0, METAL),
- X #ifdef TOLKIEN
- X! ARMOR("dwarvish mithril-coat", NULL, 1, 0, 0, 10, 1, 2, 240, 4, 3, MITHRIL),
- X! ARMOR("elven mithril-coat", NULL, 1, 0, 0, 15, 1, 2, 240, 5, 3, MITHRIL),
- X ARMOR("chain mail", NULL, 1, 0, 0, 76, 5, 6, 75, 5, 1, METAL),
- X ARMOR("orcish chain mail", "black chain mail",
- X 0, 0, 0, 20, 5, 6, 75, 5, 1, METAL),
- X #else
- X! ARMOR("dwarvish mithril-coat", NULL, 1, 0, 0, 25, 1, 2, 240, 4, 3, MITHRIL),
- X ARMOR("chain mail", NULL, 1, 0, 0, 96, 5, 6, 75, 5, 1, METAL),
- X #endif
- X! ARMOR("scale mail", NULL, 1, 0, 0, 76, 5, 5, 120, 6, 0, METAL),
- X ARMOR("studded leather armor", NULL,
- X! 1, 0, 0, 76, 3, 3, 20, 7, 1, 0),
- X #ifdef TOLKIEN
- X! ARMOR("ring mail", NULL, 1, 0, 0, 76, 5, 4, 100, 7, 0, METAL),
- X ARMOR("orcish ring mail", "black ring mail",
- X! 0, 0, 0, 20, 5, 5, 80, 8, 1, METAL),
- X #else
- X! ARMOR("ring mail", NULL, 1, 0, 0, 96, 5, 4, 100, 7, 0, METAL),
- X #endif
- X ARMOR("leather armor", NULL, 1, 0, 0, 97, 3, 2, 5, 8, 0, 0),
- X
- X /* 'cope' is not a spelling mistake... leave it be */
- X ARMOR("mummy wrapping", NULL,
- X! 1, 0, 0, 0, 0, 2, 2, 10, 2, 0),
- X #ifdef TOLKIEN
- X ARMOR("elven cloak", "ornamental cope",
- X! 0, 0, STEALTH, 12, 0, 2, 60, 9, 3, 0),
- X ARMOR("orcish cloak", "black mantelet",
- X! 0, 0, 0, 12, 0, 2, 40, 10, 3, 0),
- X ARMOR("dwarvish cloak", "colorful hooded cloak",
- X! 0, 0, 0, 12, 0, 2, 50, 10, 3, 0),
- X #else
- X ARMOR("elven cloak", "ornamental cope",
- X! 0, 0, STEALTH, 36, 0, 2, 60, 9, 3, 0),
- X #endif
- X ARMOR("cloak of protection", "tattered cape",
- X! 0, 0, PROTECTION, 12, 0, 2, 50, 7, 3, 0),
- X ARMOR("cloak of invisibility", "opera hood",
- X! 0, 0, INVIS, 12, 0, 2, 60, 9, 3, 0),
- X ARMOR("cloak of magic resistance", "faded pall",
- X! 0, 0, ANTIMAGIC, 2, 0, 2, 60, 9, 3, 0),
- X ARMOR("cloak of displacement", "piece of cloth",
- X! 0, 0, DISPLACED, 12, 0, 2, 50, 9, 3, 0),
- X
- X #ifdef TOLKIEN
- X ARMOR("small shield", NULL,
- X! 1, 0, 0, 6, 0, 2, 3, 9, 0, METAL),
- X ARMOR("elven shield", "blue and green shield",
- X! 0, 0, 0, 2, 0, 2, 3, 8, 0, METAL),
- X ARMOR("Uruk-hai shield", "white-handed shield",
- X! 0, 0, 0, 2, 0, 4, 3, 9, 0, METAL),
- X ARMOR("orcish shield", "red-eyed shield",
- X! 0, 0, 0, 2, 0, 3, 3, 9, 0, METAL),
- X ARMOR("large shield", NULL,
- X! 1, 1, 0, 7, 0, 4, 7, 8, 0, METAL),
- X ARMOR("dwarvish roundshield", "large round shield",
- X! 0, 0, 0, 4, 0, 4, 7, 8, 0, METAL),
- X #else
- X ARMOR("small shield", NULL,
- X! 1, 0, 0, 12, 0, 2, 3, 9, 0, METAL),
- X ARMOR("large shield", NULL,
- X! 1, 1, 0, 11, 0, 4, 7, 8, 0, METAL),
- X #endif
- X ARMOR("shield of reflection", "polished silver shield",
- X! 0, 0, REFLECTING, 3, 0, 3, 50, 8, 0, SILVER),
- X
- X #ifdef SHIRT
- X ARMOR("Hawaiian shirt", NULL, 1, 0, 0, 10, 0, 2, 5, 10, 0, 0),
- X***************
- X*** 420,482 ****
- X #endif
- X
- X ARMOR("leather gloves", "old gloves",
- X! 0, 0, 0, 16, 1, 2, 10, 9, 0, 0),
- X ARMOR("gauntlets of fumbling", "padded gloves",
- X! 0, 0, FUMBLING, 8, 1, 2, 10, 9, 0, 0),
- X ARMOR("gauntlets of power", "riding gloves",
- X! 0, 0, 0, 8, 1, 2, 10, 9, 0, METAL),
- X ARMOR("gauntlets of dexterity", "fencing gloves",
- X! 0, 0, 0, 8, 1, 2, 10, 9, 0, 0),
- X
- X ARMOR("low boots", "walking shoes",
- X! 0, 0, 0, 25, 2, 3, 20, 9, 0, 0),
- X ARMOR("iron shoes", "hard shoes",
- X! 0, 0, 0, 7, 2, 5, 20, 8, 0, METAL),
- X ARMOR("high boots", "jackboots",
- X! 0, 0, 0, 15, 2, 4, 50, 8, 0, 0),
- X ARMOR("speed boots", "combat boots",
- X! 0, 0, FAST, 12, 2, 4, 30, 9, 0, 0),
- X ARMOR("water walking boots", "jungle boots",
- X! 0, 0, WWALKING, 12, 2, 4, 30, 9, 0, 0),
- X ARMOR("jumping boots", "hiking boots",
- X! 0, 0, JUMPING, 12, 2, 4, 30, 9, 0, 0),
- X ARMOR("elven boots", "mud boots",
- X 0, 0, STEALTH, 12, 2, 3, 8, 9, 0, 0),
- X ARMOR("fumble boots", "riding boots",
- X! 0, 0, FUMBLING, 12, 2, 4, 15, 9, 0, 0),
- X ARMOR("levitation boots", "snow boots",
- X! 0, 0, LEVITATION, 12, 2, 4, 15, 9, 0, 0),
- X #undef ARMOR
- X
- X! #define POTION(name,color,power,prob) { name, color, NULL, 0,1,0,0, power,\
- X! POTION_SYM, prob, 0, 2, 100, 0, 0, 0 }
- X
- X #ifdef SPELLS
- X! POTION("fruit juice", "smoky", 0, 45),
- X! POTION("booze", "bubbly", 0, 45),
- X! POTION("gain energy", "ebony", 0, 45),
- X #else
- X! POTION("fruit juice", "smoky", 0, 70),
- X! POTION("booze", "bubbly", 0, 65),
- X! #endif
- X! POTION("gain ability", "swirly", 0, 45),
- X! POTION("restore ability", "pink", 0, 45),
- X! POTION("sickness", "ruby", SICK, 45),
- X! POTION("confusion", "orange", CONFUSION, 45),
- X! POTION("blindness", "yellow", BLINDED, 45),
- X! POTION("paralysis", "emerald", 0, 45),
- X! POTION("speed", "dark green", FAST, 45),
- X! POTION("levitation", "cyan", LEVITATION, 45),
- X! POTION("hallucination", "brilliant blue", HALLUC, 45),
- X! POTION("invisibility", "sky blue", INVIS, 45),
- X! POTION("see invisible", "magenta", SEE_INVIS, 45),
- X! POTION("healing", "purple", 0, 65),
- X! POTION("extra healing", "purple-red", 0, 50),
- X! POTION("gain level", "puce", 0, 20),
- X! POTION("enlightenment", "brown", 0, 20),
- X! POTION("monster detection", "white", 0, 45),
- X! POTION("object detection", "glowing", 0, 45),
- X! POTION("water", "clear", 0, 125),
- X #undef POTION
- X
- X #define SCROLL(name,text,prob,cost) { name, text, NULL, 0,1,0,0, 0,\
- X--- 424,486 ----
- X #endif
- X
- X ARMOR("leather gloves", "old gloves",
- X! 0, 0, 0, 16, 1, 2, 8, 9, 0, 0),
- X ARMOR("gauntlets of fumbling", "padded gloves",
- X! 0, 0, FUMBLING, 8, 1, 2, 50, 9, 0, 0),
- X ARMOR("gauntlets of power", "riding gloves",
- X! 0, 0, 0, 8, 1, 2, 50, 9, 0, METAL),
- X ARMOR("gauntlets of dexterity", "fencing gloves",
- X! 0, 0, 0, 8, 1, 2, 50, 9, 0, 0),
- X
- X ARMOR("low boots", "walking shoes",
- X! 0, 0, 0, 25, 2, 3, 8, 9, 0, 0),
- X ARMOR("iron shoes", "hard shoes",
- X! 0, 0, 0, 7, 2, 5, 16, 8, 0, METAL),
- X ARMOR("high boots", "jackboots",
- X! 0, 0, 0, 15, 2, 4, 12, 8, 0, 0),
- X ARMOR("speed boots", "combat boots",
- X! 0, 0, FAST, 12, 2, 4, 50, 9, 0, 0),
- X ARMOR("water walking boots", "jungle boots",
- X! 0, 0, WWALKING, 12, 2, 4, 50, 9, 0, 0),
- X ARMOR("jumping boots", "hiking boots",
- X! 0, 0, JUMPING, 12, 2, 4, 50, 9, 0, 0),
- X ARMOR("elven boots", "mud boots",
- X 0, 0, STEALTH, 12, 2, 3, 8, 9, 0, 0),
- X ARMOR("fumble boots", "riding boots",
- X! 0, 0, FUMBLING, 12, 2, 4, 30, 9, 0, 0),
- X ARMOR("levitation boots", "snow boots",
- X! 0, 0, LEVITATION, 12, 2, 4, 30, 9, 0, 0),
- X #undef ARMOR
- X
- X! #define POTION(name,color,power,prob,cost) { name, color, NULL, \
- X! 0,1,0,0, power, POTION_SYM, prob, 0, 2, cost, 0, 0, 0 }
- X
- X #ifdef SPELLS
- X! POTION("fruit juice", "smoky", 0, 45, 50),
- X! POTION("booze", "bubbly", 0, 45, 50),
- X! POTION("gain energy", "ebony", 0, 45, 150),
- X #else
- X! POTION("fruit juice", "smoky", 0, 70, 50),
- X! POTION("booze", "bubbly", 0, 65, 50),
- X! #endif
- X! POTION("gain ability", "swirly", 0, 45, 300),
- X! POTION("restore ability", "pink", 0, 45, 100),
- X! POTION("sickness", "ruby", SICK, 45, 50),
- X! POTION("confusion", "orange", CONFUSION, 45, 100),
- X! POTION("blindness", "yellow", BLINDED, 45, 150),
- X! POTION("paralysis", "emerald", 0, 45, 300),
- X! POTION("speed", "dark green", FAST, 45, 200),
- X! POTION("levitation", "cyan", LEVITATION, 45, 200),
- X! POTION("hallucination", "brilliant blue", HALLUC, 45, 100),
- X! POTION("invisibility", "sky blue", INVIS, 45, 150),
- X! POTION("see invisible", "magenta", SEE_INVIS, 45, 50),
- X! POTION("healing", "purple", 0, 65, 100),
- X! POTION("extra healing", "purple-red", 0, 50, 100),
- X! POTION("gain level", "puce", 0, 20, 300),
- X! POTION("enlightenment", "brown", 0, 20, 200),
- X! POTION("monster detection", "white", 0, 45, 150),
- X! POTION("object detection", "glowing", 0, 45, 150),
- X! POTION("water", "clear", 0, 125, 100),
- X #undef POTION
- X
- X #define SCROLL(name,text,prob,cost) { name, text, NULL, 0,1,0,0, 0,\
- X***************
- X*** 488,499 ****
- X SCROLL("destroy armor", "JUYED AWK YACC", 45, 100),
- X SCROLL("confuse monster", "NR 9", 53, 100),
- X SCROLL("scare monster", "XIXAXA XOXAXA XUXAXA", 35, 100),
- X! SCROLL("blank paper", "READ ME", 28, 80),
- X SCROLL("remove curse", "PRATYAVAYAH", 65, 80),
- X SCROLL("enchant weapon", "DAIYEN FOOELS", 85, 60),
- X! SCROLL("create monster", "LEP GEX VEN ZEA", 45, 100),
- X SCROLL("taming", "PRIRUTSENIE", 15, 200),
- X! SCROLL("genocide", "ELBIB YLOH", 15, 200),
- X SCROLL("light", "VERR YED HORRE", 95, 50),
- X SCROLL("teleportation", "VENZAR BORGAVVE", 55, 100),
- X SCROLL("gold detection", "THARR", 33, 100),
- X--- 492,503 ----
- X SCROLL("destroy armor", "JUYED AWK YACC", 45, 100),
- X SCROLL("confuse monster", "NR 9", 53, 100),
- X SCROLL("scare monster", "XIXAXA XOXAXA XUXAXA", 35, 100),
- X! SCROLL("blank paper", "READ ME", 28, 60),
- X SCROLL("remove curse", "PRATYAVAYAH", 65, 80),
- X SCROLL("enchant weapon", "DAIYEN FOOELS", 85, 60),
- X! SCROLL("create monster", "LEP GEX VEN ZEA", 45, 200),
- X SCROLL("taming", "PRIRUTSENIE", 15, 200),
- X! SCROLL("genocide", "ELBIB YLOH", 15, 300),
- X SCROLL("light", "VERR YED HORRE", 95, 50),
- X SCROLL("teleportation", "VENZAR BORGAVVE", 55, 100),
- X SCROLL("gold detection", "THARR", 33, 100),
- X***************
- X*** 500,509 ****
- X SCROLL("food detection", "YUM YUM", 25, 100),
- X SCROLL("identify", "KERNOD WEL", 185, 20),
- X SCROLL("magic mapping", "ELAM EBOW", 45, 100),
- X! SCROLL("amnesia", "DUAM XNAHT", 35, 100),
- X SCROLL("fire", "ANDOVA BEGARIN", 48, 100),
- X! SCROLL("punishment", "VE FORBRYDERNE", 15, 200),
- X! SCROLL("charging", "HACKEM MUCHE", 15, 200),
- X SCROLL(NULL, "VELOX NEB", 0, 100),
- X SCROLL(NULL, "FOOBIE BLETCH", 0, 100),
- X SCROLL(NULL, "TEMOV", 0, 100),
- X--- 504,513 ----
- X SCROLL("food detection", "YUM YUM", 25, 100),
- X SCROLL("identify", "KERNOD WEL", 185, 20),
- X SCROLL("magic mapping", "ELAM EBOW", 45, 100),
- X! SCROLL("amnesia", "DUAM XNAHT", 35, 200),
- X SCROLL("fire", "ANDOVA BEGARIN", 48, 100),
- X! SCROLL("punishment", "VE FORBRYDERNE", 15, 300),
- X! SCROLL("charging", "HACKEM MUCHE", 15, 300),
- X SCROLL(NULL, "VELOX NEB", 0, 100),
- X SCROLL(NULL, "FOOBIE BLETCH", 0, 100),
- X SCROLL(NULL, "TEMOV", 0, 100),
- X***************
- X*** 521,535 ****
- X WAND("nothing", "ebony", 25, 100, IMMEDIATE, WOOD),
- X WAND("make invisible", "marble", 45, 150, IMMEDIATE, MINERAL),
- X WAND("slow monster", "tin", 55, 150, IMMEDIATE, METAL),
- X! WAND("speed monster", "brass", 55, 150, IMMEDIATE, METAL),
- X! WAND("undead turning", "copper", 55, 150, IMMEDIATE, METAL),
- X! WAND("polymorph", "silver", 45, 200, IMMEDIATE, METAL),
- X! WAND("cancellation", "platinum", 45, 200, IMMEDIATE, METAL),
- X WAND("teleportation", "iridium", 45, 200, IMMEDIATE, METAL),
- X #ifdef PROBING
- X- WAND("probing", "uranium", 30, 150, IMMEDIATE, METAL),
- X WAND("opening", "zinc", 25, 150, IMMEDIATE, METAL),
- X WAND("locking", "aluminum", 25, 150, IMMEDIATE, METAL),
- X #else
- X WAND("opening", "zinc", 40, 150, IMMEDIATE, METAL),
- X WAND("locking", "aluminum", 40, 150, IMMEDIATE, METAL),
- X--- 525,539 ----
- X WAND("nothing", "ebony", 25, 100, IMMEDIATE, WOOD),
- X WAND("make invisible", "marble", 45, 150, IMMEDIATE, MINERAL),
- X WAND("slow monster", "tin", 55, 150, IMMEDIATE, METAL),
- X! WAND("speed monster", "brass", 55, 150, IMMEDIATE, COPPER),
- X! WAND("undead turning", "copper", 55, 150, IMMEDIATE, COPPER),
- X! WAND("polymorph", "silver", 45, 200, IMMEDIATE, SILVER),
- X! WAND("cancellation", "platinum", 45, 200, IMMEDIATE, PLATINUM),
- X WAND("teleportation", "iridium", 45, 200, IMMEDIATE, METAL),
- X #ifdef PROBING
- X WAND("opening", "zinc", 25, 150, IMMEDIATE, METAL),
- X WAND("locking", "aluminum", 25, 150, IMMEDIATE, METAL),
- X+ WAND("probing", "uranium", 30, 150, IMMEDIATE, METAL),
- X #else
- X WAND("opening", "zinc", 40, 150, IMMEDIATE, METAL),
- X WAND("locking", "aluminum", 40, 150, IMMEDIATE, METAL),
- X***************
- X*** 594,628 ****
- X #undef SPELL
- X #endif /* SPELLS /**/
- X
- X! #define RING(name,stone,power,spec,metal) { name, stone, NULL, 0,0,spec,metal,\
- X! power, RING_SYM, 0, 0, 1, 100, spec, 0, 0 }
- X
- X! RING("adornment", "wooden", ADORNED, 1, WOOD),
- X! RING("gain strength", "granite", 0, 1, MINERAL),
- X! RING("increase damage", "hematite", 0, 1, MINERAL),
- X! RING("protection", "black onyx", PROTECTION, 1, MINERAL),
- X! RING("regeneration", "moonstone", REGENERATION, 0, MINERAL),
- X! RING("searching", "tiger eye", SEARCHING, 0, MINERAL),
- X! RING("stealth", "jade", STEALTH, 0, MINERAL),
- X! RING("levitation", "agate", LEVITATION, 0, MINERAL),
- X! RING("hunger", "topaz", HUNGER, 0, MINERAL),
- X! RING("aggravate monster", "sapphire", AGGRAVATE_MONSTER, 0, METAL),
- X! RING("conflict", "ruby", CONFLICT, 0, METAL),
- X! RING("warning", "diamond", WARNING, 0, METAL),
- X! RING("poison resistance", "pearl", POISON_RES, 0, METAL),
- X! RING("fire resistance", "iron", FIRE_RES, 0, METAL),
- X! RING("cold resistance", "brass", COLD_RES, 0, METAL),
- X! RING("shock resistance", "copper", SHOCK_RES, 0, METAL),
- X! RING("teleportation", "silver", TELEPORT, 0, METAL),
- X! RING("teleport control", "gold", TELEPORT_CONTROL, 0, METAL),
- X #ifdef POLYSELF
- X! RING("polymorph", "ivory", POLYMORPH, 0, 0),
- X! RING("polymorph control","blackened", POLYMORPH_CONTROL, 0, METAL),
- X #endif
- X! RING("invisibility", "wire", INVIS, 0, METAL),
- X! RING("see invisible", "engagement", SEE_INVIS, 0, METAL),
- X RING("protection from shape changers", "shining",
- X! PROT_FROM_SHAPE_CHANGERS, 0, METAL),
- X #undef RING
- X
- X /* gems ************************************************************/
- X--- 598,632 ----
- X #undef SPELL
- X #endif /* SPELLS /**/
- X
- X! #define RING(name,stone,power,cost,spec,metal) { name, stone, NULL, \
- X! 0,0,spec,metal, power, RING_SYM, 0, 0, 1, cost, spec, 0, 0 }
- X
- X! RING("adornment", "wooden", ADORNED, 100, 1, WOOD),
- X! RING("gain strength", "granite", 0, 150, 1, MINERAL),
- X! RING("increase damage", "hematite", 0, 150, 1, MINERAL),
- X! RING("protection", "black onyx", PROTECTION, 100, 1, MINERAL),
- X! RING("regeneration", "moonstone", REGENERATION, 200, 0, MINERAL),
- X! RING("searching", "tiger eye", SEARCHING, 200, 0, MINERAL),
- X! RING("stealth", "jade", STEALTH, 100, 0, MINERAL),
- X! RING("levitation", "agate", LEVITATION, 200, 0, MINERAL),
- X! RING("hunger", "topaz", HUNGER, 100, 0, MINERAL),
- X! RING("aggravate monster", "sapphire", AGGRAVATE_MONSTER, 150, 0, METAL),
- X! RING("conflict", "ruby", CONFLICT, 300, 0, METAL),
- X! RING("warning", "diamond", WARNING, 100, 0, METAL),
- X! RING("poison resistance", "pearl", POISON_RES, 150, 0, METAL),
- X! RING("fire resistance", "iron", FIRE_RES, 200, 0, METAL),
- X! RING("cold resistance", "brass", COLD_RES, 150, 0, COPPER),
- X! RING("shock resistance", "copper", SHOCK_RES, 150, 0, COPPER),
- X! RING("teleportation", "silver", TELEPORT, 200, 0, SILVER),
- X! RING("teleport control", "gold", TELEPORT_CONTROL, 300, 0, GOLD),
- X #ifdef POLYSELF
- X! RING("polymorph", "ivory", POLYMORPH, 300, 0, 0),
- X! RING("polymorph control","blackened", POLYMORPH_CONTROL, 300, 0, METAL),
- X #endif
- X! RING("invisibility", "wire", INVIS, 150, 0, METAL),
- X! RING("see invisible", "engagement", SEE_INVIS, 150, 0, METAL),
- X RING("protection from shape changers", "shining",
- X! PROT_FROM_SHAPE_CHANGERS, 100, 0, METAL),
- X #undef RING
- X
- X /* gems ************************************************************/
- X
- END_OF_FILE
- if test 44912 -ne `wc -c <'patch03d'`; then
- echo shar: \"'patch03d'\" unpacked with wrong size!
- fi
- # end of 'patch03d'
- fi
- echo shar: End of archive 4 \(of 6\).
- cp /dev/null ark4isdone
- MISSING=""
- for I in 1 2 3 4 5 6 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 6 archives.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-